package cn.edu.bzu.ie.sf.mealsmisweb.service.impl;

import cn.edu.bzu.ie.sf.mealsmisweb.entity.Commition;
import cn.edu.bzu.ie.sf.mealsmisweb.mapper.CommitionMapper;
import cn.edu.bzu.ie.sf.mealsmisweb.service.CommitionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @version v1.0.0
 * @Package : cn.edu.bzu.ie.sf.mealsmisweb.service.impl
 * @Description : 经委会记录业务实现类
 * @Create on : 2021/8/15 18:09
 * @author: Feng Song 宋锋
 **/
@Repository
public class CommitionServiceImpl implements CommitionService {
    @Autowired
    private CommitionMapper commitionMapper;   // 数据库操作实例

    /**
     * 获取某个部门下某个周的所有经委会信息，用于大队用户的管理
     * @param pid 父部门id
     * @param year 所在年份
     * @param week 周数
     * @return List<Commition> 集合实例
     */
    public List<Commition> getCommitionListByPidAndWeek(int pid, String year, int week){
        return commitionMapper.getCommitionListByPidAndWeek(pid, year, week);
    }

    /**
     * 获取某个部门的所有的经委会的数量
     * @param depid 部门的id
     * @return int 数量
     */
    public long getCountByDepid(int depid){
        return commitionMapper.getCountByDepid(depid);
    }

    /**
     * 获取某个部门下的所有的
     * @param depid 部门id
     * @param firstNum 当前的页码的第1条记录
     * @param pageSize 每个页面的计算条数
     * @return List<Commition> 集合实例
     */
    public List<Commition> getCommitionPageListByDepid(int depid, int firstNum, int pageSize){
        return commitionMapper.getCommitionPageListByDepid(depid, firstNum, pageSize);
    }

    /**
     * 获取载个部门某个周的经委会信息，用于中队用户的上传与维护
     * 也可以用于支队与大队用户的查询
     * @param depid 部门id
     * @param year 所在年份
     * @param week 周数
     * @return Commition 实例
     */
    public Commition getCommitionByDepidAndWeek(int depid, String year, int week){
        return commitionMapper.getCommitionByDepidAndWeek(depid, year, week);
    }

    /**
     * 添加经委会信息
     * @param item 要添加的经委会信息，无id的值
     * @return  int 影响的行数
     */
    public int addCommition(Commition item){
        return commitionMapper.addCommition(item);
    }

    /**
     * 修改经委会信息
     * @param item 要修改的经委会信息
     * @return  int 影响的行数
     */
    public int editCommition(Commition item){
        return commitionMapper.editCommition(item);
    }

    /**
     * 删除经委会信息
     * @param id 要删除对象的id
     * @return int 影响的行数
     */
    public int delCommition(int id){
        return commitionMapper.delCommition(id);
    }

}
